To enhance the reliability of data stored in a distributed storage network, duplicate copies of data (i.e., replicas) are stored at multiple failure zones. A failure zone, in general, refers to a group of hardware devices (e.g., disks, nodes, racks or datacenters) that may fail together. Failure zones can be hierarchical in structure with one zone being at a higher level of the hierarchy.
In other words, several failure zones at a first level (e.g. racks) can be part of a second failure zone (e.g. a datacenter). If data replicas are successfully distributed across different failure zones, localized failures will less adversely affect the recoverability of data across the entire network, since remotely stored replicas may be recovered from remote zones that remain unaffected by the local failure.
Unfortunately, copying data replicas between remote zones is typically associated with substantial delays, depending on the volume of data being duplicated, system capabilities, dynamic changes in system resources, etc. Lengthy delays are generally intolerable and especially disdainful if the delay increases the risk of loss for data that is being duplicated.